package cn.edu.lingnan.service;

import cn.edu.lingnan.mongodb.SearchHistory;
import cn.edu.lingnan.user.dtos.AddPaperQuestionDto;
import cn.edu.lingnan.user.dtos.ListPaperDto;
import cn.edu.lingnan.user.dtos.ListQuestionDto;
import cn.edu.lingnan.user.pojos.PageBean;
import cn.edu.lingnan.user.pojos.Paper;
import cn.edu.lingnan.user.pojos.Question;
import cn.edu.lingnan.user.pojos.QuestionStore;
import cn.edu.lingnan.user.vos.PaperWithQuestionVo;
import cn.edu.lingnan.user.vos.StoreVo;

import java.util.List;

public interface PaperService {
    PageBean<?> list(ListPaperDto listPaperDto);

    void addPaper(Paper paper);

    Integer deletePaper(Integer paperId);

    Paper getPaperById(Integer paperId);

    void updatePaper(Paper paper);

    /**
     * 根据试卷ID获取试卷的详细信息，包括题目和选项。
     *
     * @param paperId 试卷ID
     * @return 包含试卷详细信息的 PaperWithQuestionVo 对象
     */
    PaperWithQuestionVo getPaperWithQuestionVo(Integer paperId);

    void addPaperQuestion(AddPaperQuestionDto addPaperQuestionDto);

    PageBean<Question> getQuestionList(ListQuestionDto listQuestionDto);

    List<StoreVo> getQuestionBankList(Integer userId);

    Boolean deletePaperQuestion(Integer paperId, Integer questionId,Integer examId);

    List<SearchHistory> getRecentSearches();

    void deleteSearchHistory(java.lang.String id);
}
